//
//  ArrayDataSource.h
//  27-ArrayDataSource
//
//  Created by 曹曹 on 16/8/19.
//  Copyright © 2016年 曹曹. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN
// 重定义block
// 无返回值
// 参数1: 自定义cell/系统cell
// 参数2: model类
// __kindof修饰cell
typedef void(^ __nonnull ConfigCell)(UITableViewCell __kindof *cell, id model);

// 该类需要签订 UITableViewDataSource 协议
@interface ArrayDataSource : NSObject <UITableViewDataSource>

/**
 数据源的初始化方法

 @param reuse      重用池标识, 给协议方法使用
 @param array      数组, 数据源 - model
 @param configCell 处理cell的block - callBack

 @return 类的对象
 */
- (instancetype)initWithTableViewCellReuse:(NSString *)reuse
                           arrayDataSource:(NSArray *)array
                                configCell:(ConfigCell)configCell;
// 数据源的构造器方法
+ (instancetype)arrayDataSourceWithTableViewCellReuse:(NSString *)reuse
                                      arrayDataSource:(NSArray *)array
                                           configCell:(ConfigCell)configCell;

@end
NS_ASSUME_NONNULL_END
